Data networks switch elements of data (data elements) such as packets or cells. In such data networks, them typically exist various defined channels, such as virtual circuits, over which the data elements are carried. Each channel shares resources of the network, a resource being, for example, a queue and an associated server. Typically, a minimum bandwidth is assigned to each channel in the network according to a contract between the network provider and an entity to which the channel is assigned. An entity may be a group of data element sources or it may be a single data element source. An association exists between each data element and a channel assigned to its source. The association may be established before, or as, the data element enters the data network.
Prior data networks of the type in which a minimum bandwidth is contracted for by each channel have suffered from a variety of problems in their allocation of bandwidth to the active channels at a resource, i.e., those channels at the resource that are carrying data elements at a particular time. One such problem is the so-called fairness problem, i.e., how to fairly share any available excess bandwidth among the active channels. Another problem relates to insuring that the active channels are allowed to actually make use of all of the bandwidth for which they have contracted. This problem arises because it is possible that an end-to-end protocol being employed over a channel may interact with the congestion control mechanisms employed by the network in such a way that a channel's contracted-for bandwidth is never actually achieved.
Additional problems arise in the area of congestion control. Prior congestion control techniques tended, in the face of congestion, to drop data elements from all channels that exceeded their contracted-for bandwidth. This, however, could exacerbate the congestion by causing such channels to retransmit all their dropped data elements. Furthermore, such techniques for data element dropping typically result in the retransmission over a channel of more data elements than were actually dropped. Another problem with prior congestion control techniques is that many of them result in high delays for data elements in those channels that are transmitting within their contracted-for bandwidth. Lastly, errors that occur in the estimation of the actual bandwidth being used by each channel may cause a particular channel's data elements to be dropped even though such a channel is actually within its contracted-for bandwidth. This unnecessary data element dropping results in additional data element retransmissions and, potentially, additional congestion.